﻿using ControlHelper.Attributes;
using Creator.Core.DataBind;
using System;

namespace Creator.Core.Entity
{

    public class sys_floor_table2 : ViewModelBase 
    {
        public override int IdHashCode => id.GetHashCode();


        public override string Name => id.ToString();
        public override string Description => $"{load_info1}";
        public override double Width => pos_width;
        public override double Height => 25;
        public override double PosX => pos_x;
        public override double PosY => pos_y;

        private string realTimeInfo;
        public override string RealTimeInfo
        {
            get => $" {load_info1}:{load_status}"; set
            {

                realTimeInfo = value;
                RaisePropertyChanged();
            }
        }
        private int _id;
        private int _floor_type;
        private int _get_put_type;
        private string _sys_name;
        private string _load_info1;
        private string _load_info2;
        private DateTime? _relate_time;
        private int _floor_status;
        private int _load_status;
        private DateTime? _get_put_time;
        private int _get_put_req;
        private DateTime? _req_time;
        private int _get_put_ans;
        private DateTime? _ans_time;
        private int _available;
        private int _alarm;
        private DateTime? _start_time;
        private int _set_time;
        private string _floor_description;
        private int _mac_priority;
        private int _err_handle;
        private string _battery_code;
        private int _battery_count;
        private string _info_pre;
        private int _marking;
        private string _resource;
        private int _in_id;
        private int _out_id;
        private string _remarks;
        private string _mac_alarm;
        private string _update_user;
        private DateTime _update_time;

        [Label]
        public int id
        {
            get => _id;
            set
            {
                _id = value;
                RaisePropertyChanged();
            }
        }
        [Label]
        public int pos_x
        {
            get => _pos_x;
            set
            {
                _pos_x = value;
                RaisePropertyChanged();
            }
        }
        private int _pos_x;

        [Label]
        public int pos_y
        {
            get => _pos_y;
            set
            {
                _pos_y = value;
                RaisePropertyChanged();
            }
        }
        private int _pos_y;

        [Label]
        public int pos_width
        {
            get => _pos_width;
            set
            {
                _pos_width = value;
                RaisePropertyChanged();
            }
        }
        private int _pos_width;


        [Label]
        public int floor_type
        {
            get => _floor_type;
            set
            {
                _floor_type = value;
                RaisePropertyChanged();
            }
        }

        [Label]
        public int get_put_type
        {
            get => _get_put_type;
            set
            {
                _get_put_type = value;
                RaisePropertyChanged();
            }
        }

        [Label]
        public string sys_name
        {
            get => _sys_name;
            set
            {
                _sys_name = value;
                RaisePropertyChanged();
            }
        }

        [Label]
        public string load_info1
        {
            get => _load_info1;
            set
            {
                _load_info1 = value;
                RealTimeInfo = value;
                RaisePropertyChanged();
            }
        }

        [Label]
        public string load_info2
        {
            get => _load_info2;
            set
            {
                _load_info2 = value;
                RaisePropertyChanged();
            }
        }

        [Label]
        public DateTime? relate_time
        {
            get => _relate_time;
            set
            {
                _relate_time = value;
                RaisePropertyChanged();
            }
        }

        [Label]
        public int floor_status
        {
            get => _floor_status;
            set
            {
                _floor_status = value;
                RaisePropertyChanged();
            }
        }

        [Label]
        public int load_status
        {
            get => _load_status;
            set
            {
                _load_status = value;
                RealTimeInfo = "";
                RaisePropertyChanged();
            }
        }

        [Label]
        public DateTime? get_put_time
        {
            get => _get_put_time;
            set
            {
                _get_put_time = value;
                RaisePropertyChanged();
            }
        }

        [Label]
        public int get_put_req
        {
            get => _get_put_req;
            set
            {
                _get_put_req = value;
                RaisePropertyChanged();
            }
        }

        [Label]
        public DateTime? req_time
        {
            get => _req_time;
            set
            {
                _req_time = value;
                RaisePropertyChanged();
            }
        }

        [Label]
        public int get_put_ans
        {
            get => _get_put_ans;
            set
            {
                _get_put_ans = value;
                RaisePropertyChanged();
            }
        }

        [Label]
        public DateTime? ans_time
        {
            get => _ans_time;
            set
            {
                _ans_time = value;
                RaisePropertyChanged();
            }
        }

        [Label]
        public int available
        {
            get => _available;
            set
            {
                _available = value;
                RaisePropertyChanged();
            }
        }

        [Label]
        public int alarm
        {
            get => _alarm;
            set
            {
                _alarm = value;
                RaisePropertyChanged();
            }
        }

        [Label]
        public DateTime? start_time
        {
            get => _start_time;
            set
            {
                _start_time = value;
                RaisePropertyChanged();
            }
        }

        [Label]
        public int set_time
        {
            get => _set_time;
            set
            {
                _set_time = value;
                RaisePropertyChanged();
            }
        }

        [Label]
        public string floor_description
        {
            get => _floor_description;
            set
            {
                _floor_description = value;
                RaisePropertyChanged();
            }
        }

        [Label]
        public int mac_priority
        {
            get => _mac_priority;
            set
            {
                _mac_priority = value;
                RaisePropertyChanged();
            }
        }

        [Label]
        public int err_handle
        {
            get => _err_handle;
            set
            {
                _err_handle = value;
                RaisePropertyChanged();
            }
        }

        [Label]
        public string battery_code
        {
            get => _battery_code;
            set
            {
                _battery_code = value;
                RaisePropertyChanged();
            }
        }

        [Label]
        public int battery_count
        {
            get => _battery_count;
            set
            {
                _battery_count = value;
                RaisePropertyChanged();
            }
        }

        [Label]
        public string info_pre
        {
            get => _info_pre;
            set
            {
                _info_pre = value;
                RaisePropertyChanged();
            }
        }

        [Label]
        public int marking
        {
            get => _marking;
            set
            {
                _marking = value;
                RaisePropertyChanged();
            }
        }

        [Label]
        public string resource
        {
            get => _resource;
            set
            {
                _resource = value;
                RaisePropertyChanged();
            }
        }

        [Label]
        public int in_id
        {
            get => _in_id;
            set
            {
                _in_id = value;
                RaisePropertyChanged();
            }
        }

        [Label]
        public int out_id
        {
            get => _out_id;
            set
            {
                _out_id = value;
                RaisePropertyChanged();
            }
        }

        [Label]
        public string remarks
        {
            get => _remarks;
            set
            {
                _remarks = value;
                RaisePropertyChanged();
            }
        }

        [Label]
        public string mac_alarm
        {
            get => _mac_alarm;
            set
            {
                _mac_alarm = value;
                RaisePropertyChanged();
            }
        }

        [Label]
        public string update_user
        {
            get => _update_user;
            set
            {
                _update_user = value;
                RaisePropertyChanged();
            }
        }

        [Label]
        public DateTime update_time
        {
            get => _update_time;
            set
            {
                _update_time = value;
                RaisePropertyChanged();
            }
        }
    }


}
